package com.zqsoft.frame;

import java.util.ArrayList;
import java.util.List;

import com.zqsoft.bean.CropBean;
import com.zqsoft.bean.PackageItemBean;
import com.zqsoft.bean.ShopItemBean;
import com.zqsoft.bean.UserBean;
import com.zqsoft.bean.UserData;
import com.zqsoft.dao.CropDAO;
import com.zqsoft.dao.PackageDAO;
import com.zqsoft.guiHelper.FaceHelper;
import com.zqsoft.guiHelper.GameHelper;
import com.zqsoft.guiHelper.bean.PackageItem;
import com.zqsoft.guiHelper.bean.ShopItem;

/**
 * 入口
 * @author 周翔
 */
public class GameMember {

	private static GameHelper gameHelper = new GameHelper();
	public static UserBean loginUser;	// 描述当前登录用户信息
	public static UserData userData;	// 描述当前登录用户的游戏数据信息
	public static List<PackageItem> allUserPackages = null;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 展现游戏界面
		// 加载登录窗口
		loadUserWin();
		// 加载用户数据
		loadUserData();
		// 加载主界面背景切换
		loadBackGround();
		loadUserPackage();
		loadShop();
	}
	
	/**
	* 用于加载登录窗口
	*/
	public static void loadUserWin() {
		UserWin userWin = new UserWin();
		gameHelper.loadMod(userWin);
	}
	
	/**
	 * 加载用户的游戏数据
	 */
	public static void loadUserData() {
		FaceHelper.setExp(String.valueOf(userData.getExp()));
		FaceHelper.setLevel(String.valueOf(userData.getUserLevel()));
		FaceHelper.setMoney(String.valueOf(userData.getMoney()));
		FaceHelper.setBoardText(loginUser.getNotice());
	}
	
	/**
	 * 主界面背景切换
	 */
	public static void loadBackGround() {
		List<String> list = new ArrayList<String>();
		list.add("resources/background/1.png");
		list.add("resources/background/2.png");
		list.add("resources/background/3.png");
		list.add("resources/background/4.png");
		gameHelper.setBackground(list);
	}
	/**
	 * 加载用户包裹信息
	 */
	public static void loadUserPackage() {
		PackageDAO packageDAO = new PackageDAO();
		allUserPackages=packageDAO.getUserPackage(loginUser.getUserId());
		gameHelper.setPackageItemList(allUserPackages);
		
	}
	
    private static List<CropBean> allCropBean = new ArrayList<>();

    // 静态方法，根据作物编号查询并返回对应的作物对象
    public static CropBean getCropBean(int cropId) {
        // 遍历存储所有作物对象的集合allCropBean
        for (CropBean cropBean : allCropBean) {
            // 判断当前作物对象的编号
            if (cropBean.getCropId() == cropId) {
                // 如果编号相同，返回当前这个作物对象
                return cropBean;
            }
        }
        // 如果遍历完集合都没有找到匹配的作物对象，返回null
        return null;
    }
    
    private static List<CropBean> allcropBean=null;
  //新增一个静态方法loadShop，用于加载商店明细信息。
  //a)定义一个 List 集合 List<Shopltem>
  //调用 CropDAO 对象的 getAllCrop 方法获取所有的农作物信息赋值给b)allCropBean 集合
  // 加载商店明细信息
  public static void loadShop() {
      List<ShopItemBean> shopItems = new ArrayList<>();
      allcropBean = CropDAO.getAllCrop();
      for (CropBean cropBean : allcropBean) {
          ShopItemBean shopItemBean = new ShopItemBean(cropBean);
          shopItems.add(shopItemBean);
      }
      shopItems.sort((item1, item2) -> item1.getItemBuyLevel() - item2.getItemBuyLevel());// 按等级排序
      // 进行类型转换
      List<ShopItem> shopItemsAsShopItem = new ArrayList<>(shopItems.size());
      for (ShopItemBean bean : shopItems) {
          shopItemsAsShopItem.add((ShopItem) bean);
      }// 将 ShopItemBean 转换成 ShopItem
      gameHelper.setShopItemList(shopItemsAsShopItem);
  }
}
